package com.xju.subjectsystem.service;

import com.xju.subjectsystem.pojo.Chapter;
import com.xju.subjectsystem.pojo.Points;
import com.xju.subjectsystem.pojo.Section;
import com.xju.subjectsystem.pojo.Student;

import java.util.List;
import java.util.Map;

/**
 * -*- coding:utf-8 -*-
 *
 * @projectName: xju_-course_-kg_-master
 * @package: com.xju.subjectsystem.service
 * @className: ChapterService
 * @author: Eiard
 * @description: TODO : 
 * @date: 2024-12-17 22:37
 */
public interface ChapterService {

    /**
     * @methodName: selectByCsno
     * @package: com.xju.subjectsystem.service
     * @description: DONE : 通过课程班级查询所有章节(按主键排序)
     * @author: Eiard
     * @date: 2024-12-17 22:48
     * @param: csno
     * @return: List<Chapter>
     */
    List<Chapter> selectByCsno(Integer csno);


    /**
     * @methodName: getAllDirectory
     * @package: com.xju.subjectsystem.service
     * @description: TODO : 通过班级查询到所有目录（涉及到多个Chapter、section、Point表）
     * @author: Eiard
     * @date: 2024-12-17 23:01
     * @param: csno
     * @return: void
     */
    void getAllDirectory(Integer csno);


    /**
     * @methodName: add
     * @package: com.xju.subjectsystem.service
     * @description: DONE : 为课程班级添加章节
     * @author: Eiard
     * @date: 2024-12-17 22:46
     * @param: chapter
     * @return: Integer     返回主键
     */
    Integer add(Chapter chapter);


    /**
     * @methodName: batchAddChapters
     * @package: com.xju.subjectsystem.service
     * @description: DONE : 批量导入章节(返回自增主键，用于后续添加Section和Points)
     * @author: Eiard
     * @date: 2024-12-17 22:47
     * @param: chapterList
     * @return: List<Integer>
     */
    List<Integer> batchAddChapters(List<Chapter> chapterList);


    /**
     * @methodName: addAllDirectory
     * @package: com.xju.subjectsystem.service
     * @description: TODO : 将chapter、section、points添加到数据库
     * @author: Eiard
     * @date: 2024-12-17 23:37
     * @param: chapterList
     * @param: sectionList
     * @param: pointsList
     * @return: void
     */
    void addAllDirectory(List<Chapter> chapterList, List<Section> sectionList, List<Points> pointsList);


}
